'''
 分别用 for in 和 while 两种方式 做出 4种小九九乘法表
'''

# 用for in 循环来做小九九
print('='*26,'for in 循环的4种形式','='*26)
# 第一种方法
for hang in range(1,10,1):
    for lie in range(1,hang+1):
        print('{}*{}={:<4}'.format(lie,hang,lie*hang),end='')
    print()
# 分隔符
print('='*80)


# 第二种方法
for hang in range(9,0,-1):
    for lie in range(1,hang+1):
        print('{}*{}={:<4}'.format(lie, hang, lie * hang), end='')
    print()

print()
print()

# 第三种方法
'''
1、因为每一行都是顺序输出；所以每行9个从最右边输出的话；加占位符
2、列的话从大的到小的排列
'''
zhanWei = 9
for hang in range(1,10):
    for zw in range(1,zhanWei):
        print('{:<8}'.format(''),end='')
    for lie in range(hang,0,-1): #刚刚这里犯了一个低级错误；忘了下 range :);
        print('{}*{}={:<4}'.format(lie, hang, lie * hang), end='')
    zhanWei -= 1
    print()
print('='*80)

# 第四种方法
zhanWei = 1
for hang in range(9,0,-1):
    for zw in range(1,zhanWei):
        print('{:<8}'.format(''),end='')
    for lie in range(hang,0,-1):
        print('{}*{}={:<4}'.format(lie, hang, lie * hang), end='')
    zhanWei += 1
    print()
print()
print()
print('='*26,'while 循环的4种形式','='*26)


# 用 while 循环来做小九九

# 第一种方法
'''
9行，9列 都是正序排列
'''
hang = 1
while hang <=9:
    lie = 1
    while lie<=hang:
        print('{}*{}={:<4}'.format(lie, hang, lie * hang), end='')
        lie += 1
    hang += 1
    print()
print('='*80)
# 第二种方法
'''
9行，倒序排列
9列，正序排列
'''
hang = 9
while hang > 0:
    lie = 1
    while lie <= hang:
        print('{}*{}={:<4}'.format(lie, hang, lie * hang), end='')
        lie += 1
    hang -= 1
    print()
print()
print()
print()
# 第三种方法
'''
9行 正序排列
9列 倒序排列
但是从右边开始显示 所以加入占位符
'''
hang = 1
zhanWei = 8
while hang <=9:
    lie = hang
    print('{:<8}'.format('')*zhanWei, end='') # 一开始用的while 循环占位 发现还不如 直接占位符重复好
    while lie>=1:
        print('{}*{}={:<4}'.format(lie, hang, lie * hang), end='')
        lie -= 1
    hang += 1
    zhanWei -= 1
    print()
print('='*80)

# 第四种方法
'''
9行 倒序排列
9列 倒序排列
但是从右边开始显示 所以加入占位符
'''
hang = 9
zhanWei = 0
while hang >= 1:
    lie = hang
    print('{:<8}'.format('')*zhanWei, end='') # 一开始用的while 循环占位 发现还不如 直接占位符重复好
    while lie>=1:
        print('{}*{}={:<4}'.format(lie, hang, lie * hang), end='')
        lie -= 1
    hang -= 1
    zhanWei += 1
    print()